package Report;

import DAO.Conexao;
import java.awt.Frame;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;


/**
 * Classe criada para controlar o acesso aos relatórios
 * @author Tiago
 * @since Classe criada em 05/12/2013.
 */

public class Relatorio {
    Connection con;
    PreparedStatement pre = null;
    Conexao conexao = new Conexao();
    
    public void mostrarRelatorio(String usuario) throws IOException, SQLException{
        try {
            String sql = "SELECT DISTINCT aplicacao_injecao.cod_aplicacao_injecao, aplicacao_injecao.cod_usuario, usuario.nome, " +
                            "aplicacao_injecao.cod_receita, aplicacao_injecao.braco_aplicacao_injecao " +
                         "FROM aplicacao_injecao, usuario, receita, medicamento_receita, medicamento " +
                         "WHERE aplicacao_injecao.cod_usuario = usuario.numero_prontuario AND " +
                            "aplicacao_injecao.cod_receita = receita.cod_receita AND " +
                            "aplicacao_injecao.situacao_aplicacao_injecao = 0 AND " +
                            "aplicacao_injecao.cod_usuario = " + usuario;       

            con = conexao.obterConexao();
            pre = con.prepareStatement(sql);
            ResultSet rs = pre.executeQuery();
            JRResultSetDataSource jrRS = new JRResultSetDataSource(rs) ;
            JasperReport report = JasperCompileManager.compileReport(System.getProperty("user.dir") + "/src/Report/CAPS 2.jrxml");
            Map parametro = new HashMap();
            parametro.put("cod_usuario", Integer.parseInt(usuario));
            parametro.put("SUBREPORT_DIR", System.getProperty("user.dir") + "\\src\\Report\\");
            parametro.put("REPORT_CONNECTION", con);
            JasperPrint print = JasperFillManager.fillReport(report, parametro, jrRS);
            JasperViewer view = new JasperViewer(print, false);
            String home_path = System.getProperty("user.home"); 
            JasperExportManager.exportReportToPdfFile(print,home_path+"/CAPS 2.pdf"); 
            view.setTitle("Aplicação de Injeção");
            view.setExtendedState(Frame.MAXIMIZED_BOTH);
            view.setVisible(true);
        } catch (JRException e) {
            System.err.println("iReport - Erro: " + e.getMessage().toString());
        }   
    }//fim da folha chamada 
    
} //Fim da classe
